diff --git a/post/lib_ppc/b.c b/post/lib_ppc/b.c
index 45b9ff2..7a2583d 100644
--- a/post/lib_ppc/b.c
+++ b/post/lib_ppc/b.c
@@ -95,6 +95,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -188,6 +189,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/cmp.c b/post/lib_ppc/cmp.c
index 8d80f86..13809d4 100644
--- a/post/lib_ppc/cmp.c
+++ b/post/lib_ppc/cmp.c
@@ -102,6 +102,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_cmp_size && ret == 0; i++)
     {
@@ -124,6 +125,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/cmpi.c b/post/lib_ppc/cmpi.c
index 92b4d57..5ecfe87 100644
--- a/post/lib_ppc/cmpi.c
+++ b/post/lib_ppc/cmpi.c
@@ -102,6 +102,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_cmpi_size && ret == 0; i++)
     {
@@ -124,6 +125,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/complex.c b/post/lib_ppc/complex.c
index 271392a..4983c51 100644
--- a/post/lib_ppc/complex.c
+++ b/post/lib_ppc/complex.c
@@ -101,6 +101,7 @@
 int cpu_post_test_complex (void)
 {
     int ret = 0;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -117,6 +118,9 @@
 	post_log ("Error at complex test !\n");
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/cr.c b/post/lib_ppc/cr.c
index 0bd9e74..2c7976a 100644
--- a/post/lib_ppc/cr.c
+++ b/post/lib_ppc/cr.c
@@ -248,6 +248,7 @@
     int ret = 0;
     unsigned int i;
     unsigned long cr_sav;
+    int flag = disable_interrupts();
 
     asm ( "mfcr %0" : "=r" (cr_sav) : );
 
@@ -347,6 +348,9 @@
 
     asm ( "mtcr %0" : : "r" (cr_sav));
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/load.c b/post/lib_ppc/load.c
index 86bc223..eccebb7 100644
--- a/post/lib_ppc/load.c
+++ b/post/lib_ppc/load.c
@@ -178,6 +178,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_load_size && ret == 0; i++)
     {
@@ -246,6 +247,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/multi.c b/post/lib_ppc/multi.c
index 5d3f584..47135ab 100644
--- a/post/lib_ppc/multi.c
+++ b/post/lib_ppc/multi.c
@@ -44,6 +44,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -72,6 +73,9 @@
 	post_log ("Error at multi test !\n");
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/store.c b/post/lib_ppc/store.c
index 09ec485..c96f263 100644
--- a/post/lib_ppc/store.c
+++ b/post/lib_ppc/store.c
@@ -163,6 +163,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     for (i = 0; i < cpu_post_store_size && ret == 0; i++)
     {
@@ -226,6 +227,9 @@
 	}
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
diff --git a/post/lib_ppc/string.c b/post/lib_ppc/string.c
index b2daa88..3683ac9 100644
--- a/post/lib_ppc/string.c
+++ b/post/lib_ppc/string.c
@@ -47,6 +47,7 @@
 {
     int ret = 0;
     unsigned int i;
+    int flag = disable_interrupts();
 
     if (ret == 0)
     {
@@ -97,6 +98,9 @@
 	post_log ("Error at string test !\n");
     }
 
+    if (flag)
+	enable_interrupts();
+
     return ret;
 }
 
